1. The Field of the Invention
Embodiments of the present invention relate to decoding images, such as bar code symbols, in which data has been encoded.
2. The Relevant Technology
Bar code symbols are a convenient means to encode data for quick and easy identification using a bar code scanner. A bar code symbol is an image having a series of bars and spaces. The widths of the various bars and spaces are designed to represent data. For example, the bars may represent strings of ones and the spaces may represent strings of zeroes.
A one-dimensional bar code symbol, such as a Universal Product Code (“UPC”) symbol, encodes data in one dimension. A two-dimensional symbol, on the other hand, encodes data along two dimensions, typically forming a rectangular symbol. A two-dimensional symbol may consist of multiple one-dimensional symbols, optionally reduced in size, and stacked on top of each other in multiple rows. Thus more data may be encoded in a two-dimensional symbol than in a one-dimensional symbol. Symbol Technologies, Inc has developed a two-dimensional bar code standard called Portable Data File 417 (“PDF417”), which is capable of storing up to 2710 characters.
Two-dimensional bar code symbols, including PDF417 symbols, may be read using any suitable optical detection device, such as a rastering laser scanner or a digital imaging device, such as a camera. The data is detected by the reader and may be interpreted or recognized by an on-board computer chip or an externally connected computer. Bar code readers may be stand-alone devices or may be integrated with other devices, such as portable phones or cameras. As discussed above, patterns in the data are detected and decoded to provide via a display, for example, the original data encoded in the symbol.
However, if the bar code reader is misaligned with respect to the bar code symbol an error may occur. Bar code symbols may be designed to increase the permissible degree of misalignment by, for example, increasing the size of each row in the symbol. This is often impractical however due to spatial constraints. If a human is scanning the bar code symbol, as opposed to an automatic scanner, an attempt can be made to improve alignment on subsequent read attempts. However, this solution is time-consuming and frequently causes frustration for the scanning device operator. In addition, many applications require an automatic reader that can read a symbol without the aid of an operator. For example, the symbols on large volumes of items can be read by placing them on a conveyor belt that runs under a reader. In such applications each item's orientation with respect to the reader may vary widely.
The data encoded in a symbol is usually converted into meaningful information to be consumed by an operator or to be processed by another device, such as a computer. The process of converting the data may be a slow process depending on the complexity of the encoding used and the amount of data being decoded. A two-dimensional symbol has more encoded data than a one-dimensional bar code of equal width. Moreover, according to the PDF417 standard, alternating rows of data are encoded using different sets of codewords, thereby increasing complexity of the decoding process. Thus, the decoding of data can become very computationally intensive and time-consuming for two-dimensional symbols such as PDF417 symbols, which may tend to decrease the practical value of two-dimensional symbols.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is only provided to illustrate one exemplary technology area where some embodiments described herein may be practiced.